package util;

public class ByteUtil {
    private static final String HEX = "0123456789abcdef";
    private ByteUtil(){}

    /**
     * 把byte[] 转成 Stirng
     * @param bytes byte[]
     * @return
     */
    // @RequiresApi(api = Build.VERSION_CODES.O)
    public static String byteToString(byte[] bytes) {
        // return Base64.getEncoder().encodeToString(bytes);
        return new String(bytes);
    }

    /**
     * 把String 转成 byte[]
     * @param string
     * @return
     */
    // @RequiresApi(api = Build.VERSION_CODES.O)
    public static byte[] StringToByte(String string) {
        // return Base64.getDecoder().decode(string);
        return string.getBytes();
    }

    public static String bytes2hex(byte[] bytes) {
        StringBuilder sb = new StringBuilder(bytes.length * 2);
        for (byte b : bytes) {
            // 取出这个字节的高4位，然后与0x0f与运算，得到一个0-15之间的数据，通过HEX.charAt(0-15)即为16进制数
            sb.append(HEX.charAt((b >> 4) & 0x0f));
            // 取出这个字节的低位，与0x0f与运算，得到一个0-15之间的数据，通过HEX.charAt(0-15)即为16进制数
            sb.append(HEX.charAt(b & 0x0f));
        }
        return sb.toString();
    }
}